#!/bin/bash

# IniciarC efectua la inicializacion de ambiente, si esta se realiza con exito invoca al comando DetectarC.
# CONSULTAR define una variable de ambiente INSTALLED (sirve para saber si la instalacion fue exitosa)

configFile=`cat iniciarC.info`

if [ -f $configFile ]
then
        INSTALLED=1
else
        INSTALLED=0
fi

if [ -z $BINDIR ]
then 
       INITIALIZED=0
else
       INITIALIZED=1 
fi

export INITIALIZED
export INSTALLED

##### FUNCTIONS
function validarPermisos
{ 
	if [ ! -$1 "$2" ]
	then 
    		return 1
	else 
		return 0 
	fi 
}


function mostrarVariables
{
        echo "ARRIDIR: $ARRIDIR"
        echo "BINDIR: $BINDIR"
	echo "CONFDIR: $CONFDIR"
 	echo "GRUPO: $GRUPO"
	echo "LIBDIR: $LIBDIR"
        echo "DATAMAE: $DATAMAE"
	echo "LOGDIR: $LOGDIR"
	echo "LOGEXT: $LOGEXT"
	echo "MAXLOGSIZE: $MAXLOGSIZE"
}

function readConfigFile
{	
	IFS="="
        while read key value
	do
        case $key in
                ARRIDIR )
                        ARRIDIR=$value
                        ;;
                BINDIR )
                        BINDIR=$value
                        ;;
                CONFDIR )
                        CONFDIR=$value
                        ;;
                DATASIZE )
                        DATASIZE=$value
                        ;;
		LIBDIR )
			LIBDIR=$value
			;;
                LOGDIR )
                        LOGDIR=$value
                        ;;
                LOGEXT )
                        LOGEXT=$value
                        ;;
                MAXLOGSIZE )
                        MAXLOGSIZE=$value
                        ;;
                CURRDIR )
                        GRUPO=$value
                        ;; 
		DATAMAE )
			DATAMAE=$value
			;;
        esac
	done < `cat iniciarC.info`
}

#Primero validamos los casos alternativos, si ya se inicializo el ambiente o hubo errores en la instalacion salimos.
if [ $INSTALLED -eq 0 ]
then
	echo "No se completo correctamente la instalación."
	exit -1
fi


if [ $INITIALIZED -eq 1 ]
then 
	echo "El ambiente ya fue inicializado"
	mostrarVariables
else


###################### MAIN
readConfigFile

ENCUESTAS=$DATAMAE/encuestas.mae
ENCUESTADORES=$DATAMAE/encuestadores.mae
PREGUNTAS=$DATAMAE/preguntas.mae


#Se exportan las variables leidas del archivo de configuración
export GRUPO
export CONFDIR
export ARRIDIR
export BINDIR
export DATAMAE
export LIBDIR
export LOGDIR
export LOGEXT
export MAXLOGSIZE
export DATASIZE
export PATH


chmod 777 $LIBDIR/loguearC.sh

#Verificar que existan los archivos maestros y que tengas los permisos necesarios
error=0

errorEncuestas= validarPermisos 'r' $ENCUESTAS  
if [ $? -eq 1 ]
then
echo "Inicializacion del ambiente no fue exitosa.  El archivo ${ENCUESTAS} no existe o no tiene suficientes permisos."
${LIBDIR}/loguearC.sh "iniciarC" "SE" "El archivo ${ENCUESTAS} no existe o no tiene suficientes permisos." 
error=1
fi

errorEncuestadores= validarPermisos 'r' $ENCUESTADORES
if [ $? -eq 1 ]
then
echo "Inicializacion del ambiente no fue exitosa.  El archivo ${ENCUESTADORES} no existe o no tiene suficientes permisos."
${LIBDIR}/loguearC.sh "iniciarC" "SE" "El archivo ${ENCUESTADORES} no existe o no tiene suficientes permisos." 
error=1
fi

errorPreguntas= validarPermisos 'r' $PREGUNTAS
if [ $? -eq 1 ]
then
echo "Inicializacion del ambiente no fue exitosa.  El archivo ${PREGUNTAS} no existe o no tiene suficientes permisos."
${LIBDIR}/loguearC.sh "iniciarC" "SE" "El archivo ${PREGUNTAS} no existe o no tiene suficientes permisos." 
error=1
fi

#Si falta uno o más archivos maestros se sale del programa con error
if [ $error -eq 1 ]
then
read
exit 1
fi




#Se le otorga permiso de ejecución a los scripts
chmod 777 $BINDIR/detectarC.sh
chmod 777 $BINDIR/listarC.sh
chmod 777 $BINDIR/listarC.pl
#chmod 777 $BINDIR/sumarC.sh
chmod 777 $LIBDIR/moverC.sh
chmod 777 $LIBDIR/startD.sh
chmod 777 $LIBDIR/stopD.sh
#chmod 777 $LIBDIR/mirarC.sh

#Si pudimos exportar las variables y existian los permisos necesarios sobre los archivos maestros y directorios
#Se inicializo correctamente	
INITIALIZED=1

PATH=$PATH:$PWD
export PATH

#Se llama a starD que chequea que el demonio no este corriendo y lo ejecuta
${LIBDIR}/startD.sh

pid=`pgrep detectarC.sh`
echo "Inicializacion de Ambiente Concluida."
echo "********************************************************************************************"
echo "Ambiente"
echo `mostrarVariables`
echo "********************************************************************************************"
echo "Demonio corriendo bajo el Nro.: ${pid}"

fi
